package com.hl.toolkit.server.util;

import com.alibaba.fastjson.JSONObject;
import net.sf.json.xml.XMLSerializer;

import java.util.ArrayList;
import java.util.List;

//用来统计用户数量的工具类

public class CountUserUtil {

	public static int countUser(String str1, int payMode) {  
		  // 支付宝方式 
          int applyuserCount=0;
          int baiduuserCount=0;
          int weixinuserCount=0;
          int jingdonguserCount=0;
          int qquserCount=0; 
          
          // 支付宝方式的用户
		  if(payMode==2){
			    List list2=new ArrayList();
			  JSONObject jsonstr = JSONObject.parseObject(str1);
			/* net.sf.json.JSONObject object=net.sf.json.JSONObject.fromObject(str1);
			 System.out.println("buyer_user_id"+  object.getString( "buyer_user_id"));*/ 
			list2.add(jsonstr); 
			//再对list集合里面的元素进行去重 
		        int count = 1;// 默认出现的次数为1  
		        for (int i = 0; i < list2.size(); i++) {  
		            count = 1;  
		            net.sf.json.JSONObject object1=net.sf.json.JSONObject.fromObject(list2.get(i) );
		           Object user11=object1.getString( "buyer_user_id"); 
		            for (int j = i + 1; j < list2.size(); j++) {    
		            	net.sf.json.JSONObject object2=net.sf.json.JSONObject.fromObject(list2.get(j) );
		            	Object user12=object2.getString( "buyer_user_id");
		            	 System.out.println("buyer_user_id"+  object2.getString( "buyer_user_id")); 
		                if (user11.equals(object2)) {  
		                    count++;// 次数+1  
		                    list2.remove(j);  
		                    j--;// 这里是重点，因为集合remove()后，长度改变了，对应的下标也不再是原来的下标，//仔细体会  
		                }  
		            }   
		        } 
		         applyuserCount=count;
		        return   applyuserCount;
		 }
		  //用百度钱包支付的用户数量
		  else if(payMode==3){
			  List list3=new ArrayList();
			  JSONObject jsonstr = JSONObject.parseObject(str1);
			/* net.sf.json.JSONObject object=net.sf.json.JSONObject.fromObject(str1);
			 System.out.println("buyer_user_id"+  object.getString( "buyer_user_id"));*/ 
			list3.add(jsonstr); 
			//再对list集合里面的元素进行去重 
		        int count = 1;// 默认出现的次数为1  
		        for (int i = 0; i < list3.size(); i++) {  
		            count = 1;  
		            net.sf.json.JSONObject object1=net.sf.json.JSONObject.fromObject(list3.get(i) );
		           Object user11=object1.getString( "buyer_user_id"); 
		            for (int j = i + 1; j < list3.size(); j++) {    
		            	net.sf.json.JSONObject object2=net.sf.json.JSONObject.fromObject(list3.get(j) );
		            	Object user12=object2.getString( "buyer_user_id");
		            	 System.out.println("buyer_user_id"+  object2.getString( "buyer_user_id")); 
		                if (user11.equals(object2)) {  
		                    count++;// 次数+1  
		                    list3.remove(j);  
		                    j--;// 这里是重点，因为集合remove()后，长度改变了，对应的下标也不再是原来的下标，//仔细体会  
		                }  
		            }   
		        } 
		        baiduuserCount=count;
		        return   baiduuserCount;
		 } 
		  //微信
		  else if(payMode==1){
			  List list1=new ArrayList();
			 XMLSerializer xmlSerializer = new XMLSerializer();  
			  //将xml转为json（注：如果是元素的属性，会在json里的key前加一个@标识）  
			  String result = xmlSerializer.read(str1).toString();  
			  //输出json内容  
			  System.out.println(result);  
			  /*JSONObject xmlJSONObj = XML.toJSONObject(str1);  
		       //设置缩进  
		       String jsonPrettyPrintString = xmlJSONObj.toString(4);  
		       //输出格式化后的json  
		       System.out.println(jsonPrettyPrintString);  */
			  list1.add(list1); 
				//再对list集合里面的元素进行去重 
			        int count = 1;// 默认出现的次数为1  
			        
			        for (int i = 0; i < list1.size(); i++) {  
			            count = 1;  
			            net.sf.json.JSONObject object1=net.sf.json.JSONObject.fromObject(list1.get(i) );
			           Object user11=object1.getString( "buyer_sp_username"); 
			            for (int j = i + 1; j < list1.size(); j++) {    
			            	net.sf.json.JSONObject object2=net.sf.json.JSONObject.fromObject(list1.get(j) );
			            	Object user12=object2.getString( "buyer_sp_username");
			            	 System.out.println("buyer_sp_username"+  object2.getString( "buyer_sp_username")); 
			                if (user11.equals(object2)) {  
			                    count++;// 次数+1  
			                    list1.remove(j);  
			                    j--;// 这里是重点，因为集合remove()后，长度改变了，对应的下标也不再是原来的下标，//仔细体会  
			                }  
			            }   
			        } 
			        baiduuserCount=count;
			        return   baiduuserCount;
			   
		 }
		return   0 ;
	}
}
